package com.weimob.mcloud.wechatwork.customer.service.user.service;

import com.weimob.mcloud.wechatwork.customer.service.user.base.PaasBaseResponse;
import com.weimob.mcloud.wechatwork.customer.service.user.base.PageResponse;
import com.weimob.mcloud.wechatwork.customer.service.user.module.bo.customer.ExternalUserRelationBO;
import com.weimob.mcloud.wechatwork.customer.service.user.module.bo.customer.openapi.CustomerBaseInfoApi;
import com.weimob.mcloud.wechatwork.customer.service.user.module.bo.group.CorpChatGroupListBO;
import com.weimob.mcloud.wechatwork.customer.service.user.module.dto.customer.ExternalUserInfoByWidsDTO;
import com.weimob.mcloud.wechatwork.customer.service.user.module.dto.customer.openapi.CustomerQueryApi;
import com.weimob.mcloud.wechatwork.customer.service.user.module.dto.group.CustomerGroupPassDTO;

import java.util.List;

/**
 * 客户相关 paas
 *
 * @Author yu liu  2021/10/25 16:39
 *  * Description
 *  * Version 1.0.0
 */
public interface CustomerPaasExport {

    /**
     * 根据批量wid获取员工和客户关系信息
     *
     * @param externalUserInfoByWidsDTO
     * @return
     */
    PaasBaseResponse<List<ExternalUserRelationBO>> getCustomerEmployeeRelationByWids(ExternalUserInfoByWidsDTO externalUserInfoByWidsDTO);

    /**
     * 根据wid获取客户群相关信息
     * @param requestDTO
     * @return
     */
    PaasBaseResponse<PageResponse<CorpChatGroupListBO>> getCustomerGroupsByWids(CustomerGroupPassDTO requestDTO);

    /**
     * 查询企微客户基础信息 通过wid或者externalUserId
     *
     * @param queryDTO 入参对象
     * @return SoaResponse<CustomerBaseInfoBO, ?> 返回对象
     */
    PaasBaseResponse<CustomerBaseInfoApi> queryCustomerBaseInfoForApi(CustomerQueryApi queryDTO);

}
